Rows: 67320 Columns: 16
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (1): time
dbl (15): bacia, ano, mes, P1, P2, P2l, P1_min, P2_min, P2l_min, P1_max, P2_...
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Spiral
data = pred_data[pred_data$bacia %in% X81bacias$Estação, c("bacia", "ano", "mes", "P1", "P2")]
data[is.na(data)] = 0
data_a = data %>%
mutate(P = P1 + P2) %>%
group_by(bacia, ano) %>%
mutate(media_ano = mean(P),
"P/media_ano"=P/media_ano) %>% select(bacia,ano,mes,P, media_ano,"P/media_ano") %>%
ungroup()
data_a$bacia = as.factor(data_a$bacia)
#######
axx <- list(
title = "",
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
axy <- list(
title = "",
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
axz <- list(
title = ""
)a= left_join(
data_a %>%
filter(ano==1985, mes ==1) %>%
select(bacia,Start=media_ano)
,
data_a #%>% distinct(ano,mes,bacia,media_ano)
) %>%
group_by(bacia, ano) %>%
mutate(index=row_number(),
media_ref1985 = round(P/Start,4) ,
radius = media_ref1985,
theta = 2 * pi * (index-1)/12) %>%
mutate(
x = radius * sin(theta),
y = radius * cos(theta),
z = ano + theta/(2 * pi) ,
label = glue("{mes}/{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
) %>% arrange(ano, mes) %>% ungroup()Joining, by = "bacia"
k = a %>% ungroup()
####
fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = .7,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = list(width = 1, color = ~radius,
cmid = 1,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#00ddff"),
c(1, "#0d00ff"),
c(1.5,'#c70000')
))) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
for(i in 2:length(levels(a$bacia)) ){
fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = .7,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = list(width = 2, color = ~radius,
cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#00ddff"),
c(1, "#0d00ff"),
c(1.5,'#c70000')
)))
}
figb= left_join(
data_a %>%
filter(ano==1985, mes ==1) %>%
select(bacia,Start=media_ano)
,
data_a %>% distinct(ano,bacia, media_ano)
) %>%
group_by(bacia) %>%
mutate(index=row_number(),
media_ref1985 = round(media_ano/Start,4) ,
radius = media_ref1985,
theta = 2 * pi * (index-1)/66) %>%
mutate(
x = radius * sin(theta),
y = radius * cos(theta),
z = ano + theta/(2 * pi) ,
label = glue("{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
) %>% arrange(ano) %>% ungroup()Joining, by = "bacia"
k = b %>% ungroup()
fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = .7,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = list(width = 2, color = ~radius,
cmid = 0.7,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#00ddff"),
c(1, "#0d00ff"),
c(1.5,'#c70000')
))) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
for(i in 2:length(levels(a$bacia)) ){
fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = 1,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = list(width = 2, color = ~radius,
cmid = .5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#00ddff"),
c(1.5, "#0d00ff"),
c(1.7,'#c70000')
)))
}
figk = left_join(
data_a %>%
filter(ano==1985, mes ==1) %>%
select(bacia,Start=media_ano)
,
data_a %>% distinct(bacia, ano, media_ano)
) %>%
group_by(ano) %>%
mutate(index=row_number(),
media_ref1985 = round(media_ano/Start,4) ,
radius = 0.5 + media_ref1985,
theta = 2*pi * (index-1)/81) %>% #arrange(ano) %>% head(10) #%>% view()
mutate(
x = radius * sin(theta),
y = radius * cos(theta),
z = ano ,
label = glue("{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
) %>% arrange(ano) %>% ungroup()Joining, by = "bacia"
{
color = list(width = 4, color = ~media_ref1985,
cmid = .5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(1, "#03e8fc"),
c(1.5, "#0d00ff"),
c(3,'#c70000')
))
fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = .8,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = color) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
for(i in 2:length(levels(a$bacia)) ){
fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = .8,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = color)
}
fig
}Angulo (xy) por bacia, com eixo z sendo o ano
ORDENAMENTO com base no desvio
O gráfico a baixo tem como ordem os index com base no maior desvio padrão para o menor, o gráfico é um semi-circulo, cada angulo de \((0\le\theta\le\pi)\) é uma bacia diferente.
test = left_join(
data_a %>%
filter(ano==1985, mes ==1) %>%
select(bacia,Start=media_ano)
,
data_a %>% distinct(bacia, ano, media_ano)
) Joining, by = "bacia"
k = test %>% group_by(bacia) %>% mutate(
med = mean(media_ano),
sd = sd(media_ano)) %>% ungroup() %>%
group_by(ano) %>% arrange(desc(sd)) %>%
mutate(index=row_number(),
media_ref1985 = round(media_ano/Start,4) ,
radius = media_ref1985,
theta = pi * (index-1)/81) %>% #arrange(ano) %>% head(100) %>% view()
mutate(
x = radius * sin(theta),
y = radius * cos(theta),
z = ano ,
label = glue("{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
) %>% ungroup(){
color = list(width = 4, color = ~media_ref1985,
cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#ffffff"),
c(1.5, "#0d00ff"),
c(3,'#c70000')
))
fig <- plot_ly(data = k[ (k$bacia %in% levels(k$bacia)[1]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = .8,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = color) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
#k %>% view()
for(i in 2:length(levels(k$bacia)) ){
fig <- fig %>% add_trace(data = k[ (k$bacia %in% levels(k$bacia)[i]) , ] ,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = .7,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = color)
}
fig
}Angulo (xy) por bacia (de 0<theta<pi), com eixo z sendo o ano, no qual a ordem das bacias é distribuida por angulo (theta) começando pela bacia de maior desvio padrão com relação (ano,media_ref1985) até a menor.
O gráfico a baixo tem como ordem os index com base no maior desvio padrão para o menor, o gráfico é um semi-circulo, cada angulo de \((0\le\theta\le\pi)\) é uma bacia diferente.
test = left_join(
data_a %>%
filter(ano==1985, mes ==1) %>%
select(bacia,Start=media_ano)
,
data_a %>% distinct(bacia, ano, media_ano)
) %>% mutate(
media_ref1985 = round(media_ano/Start,4),
radius = media_ref1985
)Joining, by = "bacia"
k = test %>%
group_by(ano) %>% arrange(desc(media_ref1985)) %>%
mutate(index=row_number(),
theta = pi * (index-1)/81) %>% #arrange(ano) %>% head(100) %>% view()
mutate(
x = radius * cos(theta),
y = radius * sin(theta),
z = ano ,
label = glue("{ano} - {bacia}\n Média|1985 - {media_ref1985*100}%")
) %>% ungroup()a = 1985
x = as.vector(test[test$ano == a,"media_ref1985"])
d = density(x$media_ref1985)
#plot(d)
len = length(d$x)
data = data.frame(index= 1:len) %>% mutate(
theta = 2*pi * (index-1)/len)
data$radius = d$y*100
data$dx = d$x
data$dy = d$y
data = data %>% mutate(
x = radius * cos(theta),
y = radius * sin(theta),
z = a,
label= glue("{a}\n Média|1985 - {dx*100}%"))
# color = list(width = 4, color = ~dx,
# cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
# colorscale = list(c(0, "#ffffff"),
# c(1, "#0d00ff"),
# c(3,'#c70000')
# ))
color = list(width = 6, color = ~dx, colorscale = 'Viridis', cmin = 0, cmax = 1.5)
fig <- plot_ly(data = data ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = 1,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = color) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
for (a in unique(test$ano) ) {
x = as.vector(test[test$ano == a,"media_ref1985"])
d = density(x$media_ref1985)
len = length(d$x)
data = data.frame(index= 1:len) %>% mutate(
theta = 2*pi * (index-1)/len)
data$radius = 1+d$y*100
data$dx = d$x
data$dy = d$y
data = data %>% mutate(
x = radius * cos(theta),
y = radius * sin(theta),
z = a,
label= glue("{a}\n Densidade {round(dy,3)} \n Média|1985: {round(dx*100,2)}%"))
fig <- fig %>% add_trace(data = data,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = 0.8,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = color)
###
x = as.vector(test[test$ano == 1985,"media_ref1985"])
d = density(x$media_ref1985)
#plot(d)
len = length(d$x)
data = data.frame(index= 1:len) %>% mutate(
theta = 2*pi * (index-1)/len)
data$radius = d$y*100
data$dx = d$x
data$dy = d$y
data = data %>% mutate(
x = radius * cos(theta),
y = radius * sin(theta),
z = a,
label= glue("{a}\n Densidade {round(dy,3)} \n Média|1985: {round(dx*100,2)}%"))
fig <- fig %>% add_trace(data = data,
x = ~x, y = ~y, z = ~z,
connectgaps = TRUE,
hoverinfo = "text",
opacity = 0.5,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = list(width = 2 , color = "red")
)
}
figAngulo (theta) (de 0<theta<2pi) densidade do valor media_ref1985, com eixo z sendo o ano, no qual a ordem das bacias é distribuida conforme a densidade computada em todas as bacia (theta) no respectivo ano
Gráfico a baixo é a mesma visualização do que o de cima, a diferença é que não é rotacionado no circulo a densidade.
a = 1985
x = as.vector(test[test$ano == a,"media_ref1985"])
d = density(x$media_ref1985)
len = length(d$x)
data = data.frame(index= 1:len)
data$x = d$x
data$y = d$y
data$z = a
data = data %>% mutate(
label= glue("{a}\n Média|1985 - {x*100}%"))
color = list(width = 4, color = ~x,
cmid = 0.5,# cmin=min(t_data$t_diff), cmax=max(t_data$t_diff),
colorscale = list(c(0, "#ffffff"),
c(1.5, "#0d00ff"),
c(3,'#c70000')
))
fig <- plot_ly(data = data ,
x = ~x, y = ~y, z = ~z, text = ~label,
hoverinfo = "text",
opacity = 1,
type = 'scatter3d',
mode = 'lines',
connectgaps = TRUE,
line = color) %>%
layout(scene = list(xaxis=axx,
yaxis=axy,
zaxis=axz))
for (a in unique(test$ano) ) {
x = as.vector(test[test$ano == a,"media_ref1985"])
d = density(x$media_ref1985)
len = length(d$x)
data = data.frame(index= 1:len)
data$x = d$x
data$y = d$y
data$z = a
data = data %>% mutate(
label= glue("{a}\n Média|1985 - {x*100}%"))
fig <- fig %>% add_trace(data = data,
x = ~x, y = ~y, z = ~z, text = ~label,
connectgaps = TRUE,
hoverinfo = "text",
opacity = 1,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = color)
x = as.vector(test[test$ano == 1985,"media_ref1985"])
d = density(x$media_ref1985)
#plot(d)
len = length(d$x)
data = data.frame(index= 1:len) %>% mutate(
theta = pi * (index-1)/len)
data$radius = d$y*100
data$x = d$x
data$y = d$y
data$z = a
data = data %>% mutate(
label= glue("{a} \n Média|1985 - {x*100}%"))
fig <- fig %>% add_trace(data = data,
x = ~x, y = ~y, z = ~z,
connectgaps = TRUE,
hoverinfo = "text",
opacity = 0.8,
type = 'scatter3d',
mode = 'lines',
showlegend = F,
line = list(width = 1 , color = "black")
)
}
fig %>% layout(autosize = F, yaxis = list(
scaleanchor = "x",
scaleratio = 1))